package com.zret.oasys.service.impl;

import java.util.List;

import com.zret.oasys.dbtools.PageData;
import com.zret.oasys.entity.Dept;
import com.zret.oasys.service.DeptService;

public class DeptServiceImpl implements DeptService 
{	
	//添加部门(1.0完成)
	@Override
	public boolean addDepts(Dept dept)
	{
		//非空判断
		if (dept == null)
		{
			return false;
		}
		
		//1做个查询判断是否有重复部门名称
		List<Dept> list = deptDao.getDeptByDeptName(dept.getDeptname());
		if (list.size() != 0)
		{
			//数据库有同名部门存在
			return false;
		}
		
		//2做个查询判断是否有重复部门ID
		List<Dept> list2 = deptDao.getDeptByDeptId(dept.getDeptid());
		if (list2.size() != 0)
		{
			//如果数据库存在同名的部门ID
			return false;
		}
		
		//3做个查询判断是否有重复的部门经理ID
		List<Dept> list3 = deptDao.getDeptByManagerid(dept.getManagerid());
		if (list3.size() != 0)
		{
			//如果数据库存在同名的部门经理ID
			return false;
		}
		
		/**
		 * 通过非空，部门ID，经理ID，部门名称，判断
		 * 如果数据库都没有重复的记录，则调用添加方法
		 */
		return deptDao.addDepts(dept);
	}
	
	//删除部门(1.0完成)
	@Override
	public boolean deleteDepts(int deptid) 
	{
		boolean flag = deptDao.deleteDepts(deptid);
		//删除成功与否 返回flag
		return flag;
	}
	
	//修改部门(1.0完成)
	@Override
	public boolean updateDept(Dept dept)
	{
		boolean flag = deptDao.updateDept(dept);
		//修改成功与否 返回flag
		return flag;
	};
	
	//查询所有部门(1.0完成)
	@Override
	public List<Dept> getDepts() 
	{
		List<Dept> list = deptDao.getDepts();
		//非空判断
		if (list == null)
		{
			return null;
		}
		return list;
	}
	
	//根据部门ID查询部门(1.0完成)
	@Override
	public List<Dept> getDeptByDeptId(int deptid)
	{
		List<Dept> list = deptDao.getDeptByDeptId(deptid);
		//非空判断
		if (list == null)
		{
			return null;
		}
		return list;
	}
	
	//根据部门名称模糊查询部门(1.0完成)
	@Override
	public List<Dept> getDeptByDeptName(String deptname) 
	{
		 List<Dept> list = deptDao.getDeptByDeptName(deptname);
		 //非空判断
		if (list == null) 
		{
			return null;
		}
		return list;
	}
	
	//根据部门经理ID查询部门(1.0完成)
	@Override
	public List<Dept> getDeptByManagerid(int managerid) 
	{
		List<Dept> list = deptDao.getDeptByManagerid(managerid);
		//非空判断
		if (list == null)
		{
			return null;
		}
		return list;
	}
	
	// 所有部门的分页查询
	@Override
	public PageData<Dept> getDeptsByPage(int page, int pageSize) 
	{
		PageData<Dept> pd = deptDao.getDeptsByPage(page, pageSize);
		return pd;
	}
	
	//分页模糊查询通过部门名称
	@Override
	public PageData<Dept> getDeptsByPageForDeptname(int page, int pageSize, String deptname) 
	{
		PageData<Dept> pd = deptDao.getDeptsByPageForDeptname(page, pageSize, deptname);
		return pd;
	}
}
